/*
 *接口编写处...
*如果接口需要做Action的权限验证，请在Action上使用属性
*如: [ApiActionPermission("v_questionnaireresult",Enums.ActionPermissionOptions.Search)]
 */
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Http;
using VOL.Entity.DomainModels;
using VOL.AppManager.IServices;
using VOL.Core.Utilities;
using VOL.Core.Filters;
using VOL.Core.Enums;

namespace VOL.AppManager.Controllers
{
    public partial class v_questionnaireresultController
    {
        private readonly Iv_questionnaireresultService _service;//访问业务代码
        private readonly IHttpContextAccessor _httpContextAccessor;

        [ActivatorUtilitiesConstructor]
        public v_questionnaireresultController(
            Iv_questionnaireresultService service,
            IHttpContextAccessor httpContextAccessor
        )
        : base(service)
        {
            _service = service;
            _httpContextAccessor = httpContextAccessor;
        }

        /// <summary>
        /// 获取table1的数据
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        [Route("GetQuestionnairesListWithType"), HttpPost, ApiActionPermission("Questionnaires", ActionPermissionOptions.Search)]
        public IActionResult GetQuestionnairesListWithType([FromBody] string type)
        {
            return Json(_service.GetQuestionnairesListWithType(type));
        }

        /// <summary>
        /// 获取table1的数据
        /// </summary>
        /// <param name="loadData"></param>
        /// <returns></returns>
        [Route("exportDetails"), HttpPost, ApiActionPermission("Questionnaires", ActionPermissionOptions.Search)]
        public IActionResult exportDetails([FromBody] PageDataOptions loadData)
        {
            var data = _service.GenerateDataToExcel(loadData);
            return Json(WebResponseContent.Instance.OK(null, data));
            /*
             *             var data = _service.GenerateDataToExcel(loadData);
            if (string.IsNullOrEmpty(data)) return Json("");
            byte[] fileBytes = IO.File.ReadAllBytes(data);
            return File(
                    fileBytes,
                    Net.Mime.MediaTypeNames.Application.Octet,
                    IO.Path.GetFileName(data)
                );
            */
        }
    }
}
